#!/usr/bin/env python3
'''
此文件运行是为统计数字
用途：统计学生错题，分数
使用说明：
    1。运行
    2.提示输入名字
    3.提示先输入 ‘0 1’，用于初始化
    4.填入要统计的数字，并伴随空格和非零数字以继续输入   比如要统计的数字为21  输入 ： 21 1
    5.直到输入数字空格 0 结束一个名字下的数字统计   比如：0 0  或者：34 0
    6.提示是否输入0 结束程序   非零继续从第一步开始 直到提示输入0 以0结束程序
程序会将统计结果的频率，写入同目录的test.txt文件，便于表格工具进一步处理
'''
#判断是不是输入的数字
def ps(str1):
    b = False
    for i in str1:
        b = False
        if i == '1':
            b = True
        if i == '2':
            b = True
        if i == '3':
            b = True
        if i == '4':
            b = True
        if i == '5':
            b = True
        if i == '6':
            b = True
        if i == '7':
            b = True
        if i == '8':
            b = True
        if i == '9':
            b = True
        if i == '0':
            b = True
        if b == False:
            break
    return b
#判断是否输入有空格
def pk(str1):
    b = False
    for i in str1:
        if i == " ":
            b = True
            break
    return b
#判断输入是否合法
def ph(str1):
    #先判断是否含有空格
    if pk(str1):
    #在判断空格前后是否为数字
        if ps(str1[0:str1.index(" "):1]) and ps(str1[str1.index(" ")+1::1]):
            return True
        else:
            return False
    else:
        return False
#定义打印字典函数

mean = 1
dic = {}
#dic2 = {}
num = "0"+" "+"1"
while mean:
    name = input("输入名字")
    c1 = 1
    while int(num[num.index(" ")::1]):
        if c1 == 1:
            c1 += 1
            num = input('先输入"0 1"')
        else:
            num = input("输入数字")
        #判断输入是否合法
        while not ph(num):
            if c1 == 1:
                c1 += 1
                num = input('先输入"0 1"')
            else:
                num = input("重新输入数字")
        #print(num.index(" "))
        #print(num[0:num.index(" ")])
        if name in dic:
            lis1 = []
            for i in dic[name]:
                lis1.append(i)
            lis1.append(num[0:num.index(" "):1])
            dic[name] = lis1
        else:
            dic[name] = num[0:num.index(" "):1]
    mean = input("输入0结束结束整段程序")
    while not ps(mean):
        mean = input("输入0结束整段程序")
    mean = int(mean)
    num = "0"+" "+"1"
#打印字典
for i in dic:
    print(i,dic[i])
#print(dic)
#dic2.update(dic)
#将所有字典中的值转化为列表
#list2 = list(dic2.values())
#清空字典所有元素
'''
for i in list2:
    if i in dic2:
        dic[i] +=1
    else:
        dic[i] = 1
print(dic2)
'''
list2 = list(dic.keys())
list3 = []
dic2 = {}
for i in list2:
    for x in dic[i]:
        if x in dic2:
            dic2[x] +=1
        else:
            dic2[x] = 1
    #打印字典
file = open("test.txt","w")
file.write("统计表")
file.close()
file = open("test.txt","a")
for i in dic2:
    print(i,dic2[i])
    str4 = str(i) + "\t" +str(dic2[i]) + "\n"
    file.writelines(str4)
#print(dic2)
#写入文件
file.close()